<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
$pdf = new Cezpdf('LETTER');
$pdf->ezStartPageNumbers(20, 75, 10, 'right', utf8_decode('Página' . "  {PAGENUM} de {TOTALPAGENUM}"), 1);
generar_carta(' ', "", $pdf);

$str = "2500";
$pdf->ezText(utf8_decode($str), 9, array('justification' => 'left'));
$str = "Bogotá D.C.\n\n";
$pdf->ezText(utf8_decode($str), 9, array('justification' => 'left'));

foreach ($proponente as $prop) {
    if ($prop['Claim']['calificacion_territorial'] == 'Sin registro') {
        $str = "ESTE PROYECTO NO TIENE AÚN CALIFICACIÓN";
        $pdf->ezText(utf8_decode($str), 20, array('justification' => 'full'));
    }

    $str = "Señor(a): ";
    $pdf->ezText(utf8_decode($str), 10, array('justification' => 'left'));
    $pdf->ezText(utf8_decode($prop['Proposer']['nombre'] . ":\nProponente Proyecto  $codigo\nConvocatoria Pública INCODER SIT-01-2011\n" . $prop['Proposer']['direccion'] . "\n" . $prop['Departament']['name'] . " " . $prop['City']['name'] . "\n" . $prop['Proposer']['telefono_fijo'] . "  " . $prop['Proposer']['telefono_celular'] . "\n\n"), 10, array('justification' => 'left'));

    //inicializo el array que usare para imprimir tablas
    $data = array();
    //Imprimo la tabla que contiene el cuadro Referencia.
    $data[] = array('1' => utf8_decode("<b>Referencia:</b> Nueva evaluación en Fase I (verificación de requisitos mínimos) del proyecto " . $codigo . " de la Convocatoria Pública Incoder SIT-01-2011. "));

    $pdf->ezTable(
            $data, null, null, array(
        'fontSize' => 9,
        'titleFontSize' => 10,
        'width' => 460,
        'showHeadings' => 0,
        'showLines' => 1,
        'shaded' => 0,
        'cols' => array('1' => array('justification' => 'full')),
            )
    );

    $str = "\n";
    $pdf->ezText($str);

    $str = "Respetado señor(a): " . $prop['Proposer']['nombre'] . "\n";
    $pdf->ezText(utf8_decode($str), 9, array('justification' => 'left'));

    //Primer parrafo
    $str = "El Comité de Reclamaciones, órgano de asesoría y coordinación del Instituto Colombiano de Desarrollo Rural (Numeral 11.2 del artículo 8 del decreto 3759 del 2009), se reunió y en sesión de fecha " . $prop['Claim']['fecha_sesion'] . " tal como consta en el acta " . $prop['Claim']['acta'] . ", consideró que sobre el proyecto de la referencia, fuera realizada una nueva evaluación.\n";
    $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));

    //Segundo parrafo
    switch ($prop['Claim']['calificacion_territorial']) {
        case "Cumple":
            $calificacion_territorial = "Habilitado";
            break;
        case "No cumple":
            $calificacion_territorial = "No habilitante";
            break;
        default:
            $calificacion_territorial = "";
    }

    $str = "De manera que atendiendo las recomendaciones del Comité de Reclamaciones sobre la propuesta que usted lidera, la Dirección Territorial " . $proyecto['Branch']['nombre'] . " ha considerado que su propuesta se califica con el concepto definitivo de " . $calificacion_territorial . ", por las razones que a continuación se expresan:\n";
    $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));

    //Parrafo con el concepto emitido por la territorial.
    $str = '"' . $prop['Claim']['concepto_territorial'] . '"' . "\n";
    $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));

    //El siguiente parrafo se debe incluir unicamente cuando la calificación emitida por la territorial sea de Cumple.
    if ($prop['Claim']['calificacion_territorial'] == 'Cumple') {
        //Este parrafo debe ir si la calificación del proceso calificar nuevamente es cumple.
        $str = "Ahora bien, de acuerdo a la nueva evaluación realizada por ésta Dirección Territorial, el proyecto identificado con código " . $codigo . " continúa dentro del proceso de la convocatoria.\n\n\n";
        $pdf->ezText(utf8_decode($str), 10, array('justification' => 'full'));

        //Firma
        $str = "Cordialmente,\n\n\n";
        $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
        $str = $proyecto['Branch']['director'] . "\n";
        $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
        $str = "Director Territorial " . $proyecto['Branch']['nombre'] . "\n";
        $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
        $str = "Copia a: Comité de Reclamaciones.\n\n";
        $pdf->ezText(utf8_decode($str), 6, array('justification' => 'full'));
    } else {
        if ($prop['Claim']['calificacion_territorial'] == 'No cumple') {
            //Este parrafo debe ir si la calificación del proceso calificar nuevamente es no cumple.
            $str = "Por último es preciso indicar que el no cumplimiento de la totalidad de requisitos mínimos establecidos en los Términos de Referencia de la Convocatoria Pública INCODER SIT-01-2011 ha generado la ratificación del concepto otorgado a la propuesta, No Habilitante.\n";
            $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
            $str = "Anexo al presente oficio, se adjunta ficha técnica de revisión de las causales de rechazo.\n\n";
            $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));

            //Firma
            $str = "Cordialmente,\n\n";
            $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
            $str = $proyecto['Branch']['director'] . "\n";
            $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
            $str = "Director Territorial" . $proyecto['Branch']['nombre'] . "\n";
            $pdf->ezText(utf8_decode($str), 9, array('justification' => 'full'));
            //$str = "Preparó: " . $prop['Claim']['preparo_territorial'] . "\n";
            //$pdf->ezText(utf8_decode($str), 6, array('justification' => 'full'));
            //$str = "Revisó: " . $prop['Claim']['reviso_territorial'] . "\n";
            //$pdf->ezText(utf8_decode($str), 6, array('justification' => 'full'));
            $str = "Copia a: Comité de Reclamaciones.\n\n";
            $pdf->ezText(utf8_decode($str), 6, array('justification' => 'full'));


            $pdf->ezNewPage();

            //Si la calificación emitida por la territorial es No cumple, se imprime la ficha tecnica.
            //Cargamos requisitos del proyecto


            App::Import('model', 'ProyectRequirement');
            $preq = new ProyectRequirement();
            $preq->recursive = 0;
            $requisitos_proyecto = $preq->find('all', array('conditions' => array('ProyectRequirement.claim_id' => $claim_id), 'fields' => array('Requirement.texto', 'ProyectRequirement.calificacion', 'ProyectRequirement.id', 'ProyectRequirement.con_subsanacion', 'ProyectRequirement.cal_subsanacion')));
            $data = array();

            //Se revisa que no tenga ningun registro en requisitos que tengan que ver con la actual reclamación
            //  $pdf->ezText($requisitos_proyecto), 12, array('justification' => 'full'));


            if (empty($requisitos_proyecto)) {

                $requisitos = $preq->find('all', array('conditions' => array('ProyectRequirement.proyect_id' => $pid, 'ProyectRequirement.claim_id' => 0), 'fields' => array('Requirement.texto', 'ProyectRequirement.calificacion', 'ProyectRequirement.id', 'ProyectRequirement.con_subsanacion', 'ProyectRequirement.cal_subsanacion')));
            } else {

                $requisitos = $requisitos_proyecto;
            }

            foreach ($requisitos as $requisitopro) {
                $calif = "";
                $obs = "";
                switch ($requisitopro['ProyectRequirement']['calificacion']) {
                    case NULL:
                        $calif = "No Cumple,Sin registro";
                        break;
                    case 0:
                        $calif = "No Cumple,Sin registro";
                        break;
                    case 1:
                        $calif = "Cumple";
                        break;
                    case 2:
                        $calif = "No Cumple";
                        $razones = $preq->query("SELECT RequirementFault.nombre FROM  proyect_requirements_requirement_faults ProyectRequirementsRequirementFault LEFT JOIN proyect_requirements ProyectRequirement ON ProyectRequirement.id= ProyectRequirementsRequirementFault.proyect_requirement_id LEFT JOIN requirement_faults RequirementFault ON RequirementFault.id= ProyectRequirementsRequirementFault.requirement_fault_id WHERE ProyectRequirementsRequirementFault.proyect_requirement_id= " . $requisitopro['ProyectRequirement']['id']);
                        foreach ($razones as $razon) {
                            $obs.=$razon["RequirementFault"]['nombre'] . "\n";
                        }
                        break;
                    case 3://En el caso de subsanaciones
                        $obs = $requisitopro['ProyectRequirement']['con_subsanacion'];
                        switch ($requisitopro['ProyectRequirement']['cal_subsanacion']) {
                            case 0:
                                $calif = "No subsanó";

                                break;
                            case 1:
                                $calif = "Subsanó,Cumple";

                                break;
                            case 2:
                                $calif = "Subsanó,No cumple";

                                break;
                            case 3:
                                $calif = "No subsanó";

                                break;

                            default:
                                break;
                        }

                        break;


                    default:
                        break;
                }

                $data[] = array('<b>Requisito</b>' => utf8_decode($requisitopro['Requirement']['texto']), '<b>Observaciones</b>' => utf8_decode($obs), '<b>Calificacion</b>' => utf8_decode($calif));
            }




            $pdf->ezTable(
                    $data, null, "Requisitos de Proyecto", array(
                'fontSize' => 7,
                'titleFontSize' => 12,
                'width' => 500,
                'showHeadings' => 1,
                'showLines' => 2,
                'shaded' => 0,
                'cols' => array('Requisito' => array('justification' => 'full'), 'Observaciones' => array('justification' => 'full')),
                    )
            );

            $pdf->ezText("\n", 12, array('justification' => 'full'));
//fin impresion requisitos de proyecto

            $resp = "";
            $cal = "";
            App::Import('model', 'Candidate');
            $candidate = new candidate();
            $candidate->recursive = -1;
            $cupos = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.clase' => 1)));
            $suplentes = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.clase' => 2)));
            $activos = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.estado_filtro' => 1, 'Candidate.candidate_id' => 0)));


            $aspirantes = $candidate->find('all', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.candidate_id' => 0), 'fields' => array('Candidate.id', 'Candidate.tipo', 'Candidate.nro_ident', 'Candidate.1er_nombre', 'Candidate.1er_apellido', 'Candidate.2do_nombre', 'Candidate.2do_apellido', 'Candidate.tipo_ident')));
            $anterior = "";
            $data = array();

            $data = getfields($aspirantes, $claim_id);


            $pdf->ezTable(
                    $data, null, "Requisitos aspirantes", array(
                'fontSize' => 7,
                'titleFontSize' => 12,
                'width' => 500,
                'showHeadings' => 1,
                'showLines' => 2,
                'shaded' => 0,
                'cols' => array('Documento' => array('justification' => 'left', 'width' => 75), 'Tipo' => array('justification' => 'full', 'width' => 70), 'Nombre' => array('justification' => 'full', 'width' => 120), 'Observaciones' => array('justification' => 'full', 'width' => 170), 'Concepto' => array('justification' => 'left', 'width' => 50))
                    )
            );
            $pdf->ezText(utf8_decode("\nFamilias titulares:$cupos Familias suplentes: $suplentes  Familias que cumplen requisitos:$activos"), 12, array('justification' => 'full'));




            $pdf->ezText("\n", 12, array('justification' => 'full'));

///IMPRESION REQUISITOS PREDIOS




            App::Import('model', 'Property');
            $prdeq = new Property();
            $prdeq->recursive = 0;
            $predios = $prdeq->find('all', array('conditions' => array('Property.proyect_id' => $pid), 'fields' => array('Property.id', 'Property.nombre', 'Property.codigo', 'City.ley_segunda')));
            $data = array();

            foreach ($predios as $predio) {
                $calif = "";
                $obs = "";
                $prdeq->PropertyRequirement->recursive = 0;
                $data[] = array('Requisito' => utf8_decode("<b>" . $predio['Property']['nombre'] . "</b>"), 'Observaciones' => utf8_decode("<b>" . $predio['Property']['codigo'] . "</b>"), 'Concepto' => utf8_decode(''));
                //predios en ley segunda

                $ley2da = "Cumple";
                if ($predio['City']['ley_segunda'] == 1) {
                    $ley2da = "No Cumple";
                }
                $data[] = array('Requisito' => utf8_decode('Ley segunda'), 'Observaciones' => utf8_decode(''), 'Concepto' => utf8_decode($ley2da));


                $requisitos_predios1 = $prdeq->PropertyRequirement->find('all', array('conditions' => array('PropertyRequirement.property_id' => $predio['Property']['id'], 'PropertyRequirement.claim_id' => $claim_id), 'fields' => array('PropertyRequirement.concepto', 'PropertyRequirement.con_subsanacion', 'PropertyRequirement.cal_subsanacion', 'PropertyRequirement.id', 'PropertyRequirement.calificacion', 'Requirement.texto')));
                if (empty($requisitos_predios1)) {
                    $requisitos_predios = $prdeq->PropertyRequirement->find('all', array('conditions' => array('PropertyRequirement.property_id' => $predio['Property']['id'], 'PropertyRequirement.claim_id' => 0), 'fields' => array('PropertyRequirement.concepto', 'PropertyRequirement.con_subsanacion', 'PropertyRequirement.cal_subsanacion', 'PropertyRequirement.id', 'PropertyRequirement.calificacion', 'Requirement.texto')));
                } else {
                    $requisitos_predios = $requisitos_predios1;
                }


                foreach ($requisitos_predios as $requisitopre) {
                    $obsp = "";
                    $calp = "";


                    switch ($requisitopre['PropertyRequirement']['calificacion']) {
                        case NULL:
                            $calp = "No Cumple.Sin registro";
                            break;


                        case 0:
                            $calp = "No Cumple.Sin registro";

                            break;
                        case 1:
                            $calp = "Cumple";

                            break;
                        case 2:
                            $calp = "No Cumple";
                            $obsp = $requisitopre['PropertyRequirement']['concepto'] . "\n";
                            $razonesp = $preq->query("SELECT RequirementFault.nombre FROM  property_requirements_requirement_faults PropertyRequirementsRequirementFault LEFT JOIN property_requirements PropertyRequirement ON PropertyRequirement.id= PropertyRequirementsRequirementFault.property_requirement_id LEFT JOIN requirement_faults RequirementFault ON RequirementFault.id= PropertyRequirementsRequirementFault.requirement_fault_id WHERE PropertyRequirementsRequirementFault.property_requirement_id= " . $requisitopre['PropertyRequirement']['id']);
                            foreach ($razonesp as $razonp) {
                                $obsp.=$razonp["RequirementFault"]['nombre'] . "\n";
                            }
                            break;

                        case 3:
                            $obsp = $requisitopre['PropertyRequirement']['con_subsanacion'] . "\n";
                            switch ($requisitopre['PropertyRequirement']['cal_subsanacion']) {
                                case 0:
                                    $calp = "Subsanable";


                                    break;
                                case 1:
                                    $calp = "Subsanó,Cumple";

                                    break;
                                case 2:
                                    $calp = "Subsanó,No cumple";

                                    break;
                                case 3:
                                    $calp = "Subsanable";

                                    break;



                                default:
                                    break;
                            }



                            break;
                    }


                    $data[] = array('Requisito' => utf8_decode($requisitopre['Requirement']['texto']), 'Observaciones' => utf8_decode($obsp), 'Concepto' => utf8_decode($calp));
                }

                $prdeq->TitleStudy->recursive = -1;
                $titulo = $prdeq->TitleStudy->find('first', array('conditions' => array('TitleStudy.property_id' => $predio['Property']['id']), 'order' => array('TitleStudy.id DESC'), 'fields' => array('TitleStudy.concepto', 'TitleStudy.calificacion')));
                $calE = "";
                switch ($titulo['TitleStudy']['calificacion']) {
                    case 0:
                        $calE = "No Cumple";


                        break;
                    case 1:
                        $calE = "Cumple";

                        break;
                    case 2:
                        $calE = "No cumple";

                        break;
                    case 3:
                        $calE = "Subsanable";

                        break;



                    default:
                        break;
                }

                $data[] = array('Requisito' => utf8_decode("ESTUDIO DE TÍTULOS"), 'Observaciones' => utf8_decode($titulo['TitleStudy']['concepto']), 'Concepto' => utf8_decode($calE));
            }

            $pdf->ezTable(
                    $data, null, "Requisitos de Predio", array(
                'fontSize' => 7,
                'titleFontSize' => 12,
                'width' => 500,
                'showHeadings' => 1,
                'showLines' => 2,
                'shaded' => 0,
                'cols' => array('Requisito' => array('justification' => 'full', 'width' => 200), 'Observaciones' => array('justification' => 'full', 'width' => 200), 'Concepto' => array('justification' => 'full', 'width' => 100)),
                    )
            );

            $pdf->ezText("\n", 12, array('justification' => 'full'));
            //FIN REQUISITOS PREDIOS
        } else {
            //Para cuando no se tiene calificacion por parte de la territorial
            $pdf->ezText("NO SE HA EMITIDO CALIFICACION POR PARTE DE LA TERRITORIAL", 12, array('justification' => 'full'));
        }
    }
}


//


$pdf->ezStopPageNumbers(1, 1, 0);
$pdf->ezStream();
?>

<?php

function getfields($aspirantes, $claim_id) {
    App::Import('model', 'Candidate');
    $candidate = new candidate();
    $candidate->recursive = -1;






    foreach ($aspirantes as $aspirante) {

        $calAsp = "Cumple";
        $conAsp = "";

        switch ($aspirante['Candidate']['tipo_ident']) {
            case 1:
                $tipo = "C.C";
                break;
            case 2:
                $tipo = "T.I";
                break;

            default:
                break;
        }
        $nombre = $aspirante['Candidate']['1er_nombre'] . " " . $aspirante['Candidate']['2do_nombre'] . " " . $aspirante['Candidate']['1er_apellido'] . " " . $aspirante['Candidate']['2do_apellido'] . "</b>";
        $ced = $aspirante['Candidate']['nro_ident'];
        $doc = "    <b>" . $tipo . " " . $aspirante['Candidate']['nro_ident'] . "</b>";
        $repetido_aspirantes = $candidate->find('count', array('conditions' => array('Candidate.nro_ident' => $ced)));
        $repetido_familias = $candidate->Relative->find('count', array('conditions' => array('Relative.nro_ident' => $ced)));
        if ($repetido_aspirantes > 1 || $repetido_familias > 1) {
            $calAsp = "No cumple";
            $conAsp = "EL aspirante se encuentra duplicado.";
        }
        $candidate->CandidateRequirement->recursive = 0;

        $requisitos1 = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $aspirante['Candidate']['id'], 'CandidateRequirement.claim_id' => $claim_id), 'fields' => array('CandidateRequirement.con_subsanacion', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.candidate_id', 'CandidateRequirement.id', 'CandidateRequirement.calificacion', 'Requirement.texto')));

        if (empty($requisitos1)) {
            $requisitos = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $aspirante['Candidate']['id'], 'CandidateRequirement.claim_id' => 0), 'fields' => array('CandidateRequirement.con_subsanacion', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.candidate_id', 'CandidateRequirement.id', 'CandidateRequirement.calificacion', 'Requirement.texto')));
        } else {
            $requisitos = $requisitos1;
        }


        foreach ($requisitos as $requisito) {

            switch ($requisito['CandidateRequirement']['calificacion']) {
                case NULL:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . ": sin Registro\n";
                    break;
                case 0:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . ": sin Registro\n";
                    break;
                case 2:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . "\n";
                    $motivos = $candidate->query("SELECT RequirementFault.nombre FROM requirement_faults RequirementFault LEFT JOIN candidate_requirements_requirement_faults CandidateRequirementsRequirementFault ON CandidateRequirementsRequirementFault.requirement_fault_id=RequirementFault.id WHERE CandidateRequirementsRequirementFault.candidate_requirement_id=" . $requisito['CandidateRequirement']['id']);
                    if (isset($motivos))
                        foreach ($motivos as $motivo) {
                            $conAsp.="-" . $motivo['RequirementFault']['nombre'] . "\n";
                        }
                    break;

                case 3:

                    switch ($requisito['CandidateRequirement']['cal_subsanacion']) {
                        case 0:
                            $calAsp = "No Cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-No hay registro De la subsanacion\n";

                            break;

                        case 2:
                            $calAsp = "No cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-" . $requisito['CandidateRequirement']['con_subsanacion'] . "\n";

                            break;
                        case 3:
                            $calAsp = "No cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-Subsanable: " . $requisito['CandidateRequirement']['con_subsanacion'] . "\n";

                            break;



                        default:
                            break;
                    }


                    break;

                default:
                    break;
            }
        }

        $data[] = array('Documento' => $doc, 'Nombre' => utf8_decode($nombre), 'Tipo' => 'Cabeza de familia', 'Observaciones' => utf8_decode($conAsp), 'Concepto' => utf8_decode($calAsp));
        ///
        //BUSQUEDA DE CONYUGUE DEL ASPIRANTE EN PROCESO
        $candidate->recursive = -1;

        $conyuges = $candidate->find('all', array('conditions' => array('Candidate.candidate_id' => $aspirante['Candidate']['id']), 'fields' => array('Candidate.id', 'Candidate.tipo', 'Candidate.nro_ident', 'Candidate.1er_nombre', 'Candidate.1er_apellido', 'Candidate.2do_nombre', 'Candidate.2do_apellido', 'Candidate.tipo_ident')));

        foreach ($conyuges as $conyuge) {
            // var_dump($aspirante);
            $calCon = "Cumple";
            $conCon = "";

            switch ($conyuge['Candidate']['tipo_ident']) {
                case 1:
                    $tipoc = "C.C";
                    break;
                case 2:
                    $tipoc = "T.I";
                    break;

                default:
                    break;
            }
            $nombrec = $conyuge['Candidate']['1er_nombre'] . " " . $conyuge['Candidate']['2do_nombre'] . " " . $conyuge['Candidate']['1er_apellido'] . " " . $conyuge['Candidate']['2do_apellido'] . "</b>";
            $cedc = $conyuge['Candidate']['nro_ident'];
            $docc = "    <b>" . $tipoc . " " . $conyuge['Candidate']['nro_ident'] . "</b>";
            $repetido_aspirantesc = $candidate->find('count', array('conditions' => array('Candidate.nro_ident' => $cedc)));
            $repetido_familiasc = $candidate->Relative->find('count', array('conditions' => array('Relative.nro_ident' => $cedc)));
            if ($repetido_aspirantesc > 1 || $repetido_familiasc > 1) {
                $calCon = "No cumple";
                $conCon = "EL aspirante se encuentra duplicado";
            }
            $candidate->CandidateRequirement->recursive = 0;
            $requisitosc1 = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $conyuge['Candidate']['id'], 'CandidateRequirement.claim_id' => $claim_id), 'fields' => array('CandidateRequirement.id', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.con_subsanacion', 'CandidateRequirement.calificacion', 'Requirement.texto')));

            if (empty($requisitosc1)) {
                $requisitosc = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $conyuge['Candidate']['id']), 'fields' => array('CandidateRequirement.id', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.con_subsanacion', 'CandidateRequirement.calificacion', 'Requirement.texto')));
            } else {
                $requisitosc = $requisitosc1;
            }

            foreach ($requisitosc as $requisitoc) {
                switch ($requisitoc['CandidateRequirement']['calificacion']) {
                    case NULL:
                        $calCon = "No cumple";
                        $conCon.= $requisitoc['Requirement']['texto'] . ":\n-sin Registro\n";
                        break;
                    case 0:
                        $calCon = "No cumple";
                        $conCon.="\n " . $requisitoc['Requirement']['texto'] . ":\n-sin Registro\n";
                        break;
                    case 2:
                        $calCon = "No cumple";
                        $conCon.="\n " . $requisitoc['Requirement']['texto'] . "";
                        $motivosc = $candidate->query("SELECT RequirementFault.nombre FROM requirement_faults RequirementFault LEFT JOIN candidate_requirements_requirement_faults CandidateRequirementsRequirementFault ON CandidateRequirementsRequirementFault.requirement_fault_id=RequirementFault.id WHERE CandidateRequirementsRequirementFault.candidate_requirement_id=" . $requisitoc['CandidateRequirement']['id']);
                        if (isset($motivosc))
                            foreach ($motivosc as $motivoc) {
                                $conCon.="\n -" . $motivoc['RequirementFault']['nombre'] . "\n";
                            }
                        break;

                    case 3:
                        $conCon.="\n" . $requisitoc['Requirement']['texto'] . "";
                        switch ($requisitoc['CandidateRequirement']['cal_subsanacion']) {
                            case 0:
                                $calCon = "No Cumple";
                                $conCon.="\n-No hay registro De la subsanacion";

                                break;

                            case 2:
                                $calCon = "No cumple";
                                $conCon.="\n-" . $requisitoc['CandidateRequirement']['con_subsanacion'];

                                break;
                            case 3:
                                $calCon = "No cumple";
                                $conCon.="\n-Subsanable: " . $requisitoc['CandidateRequirement']['con_subsanacion'];

                                break;

                            default:
                                break;
                        }


                        break;

                    default:
                        break;
                }
            }

            $data[] = array('Documento' => $docc, 'Nombre' => utf8_decode($nombrec), 'Tipo' => 'Conyuge', 'Observaciones' => utf8_decode($conCon), 'Concepto' => utf8_decode($calCon));
        }
    }


    if (empty($data)) {
        return "";
    } else {
        return $data;
    }
}

function generar_carta($cod, $str, &$pdf, $start = true, $m_left = 2.5, $m_right = 2.5) {
    //App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
    if ($pdf == NULL) {
        //$pdf = new Cezpdf('LETTER');
    }
    if ($start) {
        $tmp = array(
            'b' => 'Trebuchet-Bold.afm'
            , 'i' => 'Trebuchet-Italic.afm'
            , 'bi' => 'Trebuchet-BoldItalic.afm'
            , 'ib' => 'Trebuchet-BoldItalic.afm'
            , 'bb' => 'Trebuchet-Bold.afm'
        );
        $pdf->setFontFamily('Trebuchet.afm', $tmp);
        $pdf->selectFont('fonts/Trebuchet.afm');

        $all = $pdf->openObject();
        $pdf->saveState();
        $pdf->addJpegFromFile('img/cabecera.jpg', 60, 670, 500);
        $pdf->addJpegFromFile('img/pie.jpg', 0, 10, 610, 60);
        $pdf->restoreState();
        $pdf->closeObject();
        $pdf->addObject($all, 'all');
        $pdf->transaction('start');
    }

    $pdf->ezSetCmMargins(5, 5, $m_left, $m_right);

    $textOptions = array('justification' => 'full');
    $data = explode("\n", $str);
    $collecting = 0;
    foreach ($data as $d) {
        chop($d);
        if (strlen($d) && $d[0] == '#') {
            switch ($d) {
                case '#NP':
                    $pdf->ezNewPage();
                    break;
            }
        } else {
            $pdf->ezText($d, 8, $textOptions);
        }
    }
}
?>